Many circuits require one or more clock signals for their operation. Such clock signals are typically provided by clock generator circuits, or, simply, clock circuits, that are driven by a reference clock signal that is provided from a source external to the clock circuit.
It is desirable to synthesize a clock circuit from circuitry comprised common digital circuits found in a typical VLSI standard cell library. Such common digital circuits include NAND gates, NOR gates, and FLIP-FLOPS. In this way, a clock generation circuit can be manufactured efficiently with respect to reliability and cost. On the other hand, common clock circuit techniques involve the use of PLL's and frequency dividers. However, PLL's and dividers are usually comprised of special analog components. For example, even a digital phase lock loop requires a special analog circuit known as a phase detector. Furthermore, it is often required to accompany a digital phase lock loop with external analog components such as capacitors.
Digital clocks are clock circuits implemented entirely in digital circuitry, and thus avoid the aforementioned problems. It is desired to provide a digital clock having the capability of deriving an output clock signal from a reference clock signal, where the output clock signal is a rational number multiple of the reference clock. In other words, given a reference clock provided at a frequency f.sub.R, the present invention provides an output clock having a frequency f.sub.O, such that ##EQU3##
wherein M and N are integers, and M&lt;N.
For example, in a code division multiple access ("CDMA") receiver unit, a reference clock may be provided at a frequency, f.sub.R, of 19.2 MHz, while it is desired to provide an system clock for the receiver system at a frequency, f.sub.O, of 9.8304 MHz. A frequency of 9.8304 MHz is equal to 19.2 MHz multiplied by 64/125. In other words, in this case, M is 64 and N is 125.
Now, a divide-by-two situation would be presented in this case if N were 128. However, such is not the case, and so a simple divide-by-two clock divider circuit is not available to provide this system clock.
Further, in CDMA applications, for example, it would be advantageous to provide a clock generator having the above-described capability, wherein the clock generator is also continuously controllable. In such applications, the circuits driven by the clock generator are attempting to track individual signals of multiple path signals arriving at the receiver. Each such signal may itself be changing in phase, for example as the receiver unit moves around in the vicinity of a base station. It would be useful to be able to change the frequency of the clock driving these circuits, to aid in the tracking process. And, it would be desirable to effect this control in a way that is easily accessible to software running on a system in which the circuits are utilized.
Accordingly, it is desired to provide a digital clock generator that permits the generation of an output clock from a reference clock, wherein the output clock is a rational number multiple of the reference clock. Further, it is desired to provide such a digital clock generator having programmable control over the rational number multiplier. The present invention provides such a clock generator.